home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / c / gcc261ud-c.lha / gnu / os-include / inline / cardres.h < prev    next >
C/C++ Source or Header  |  1994-09-22  |  7KB  |  256 lines

  1. #ifndef _INLINE_CARDRES_H
  2. #define _INLINE_CARDRES_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL
  11. #define BASE_EXT_DECL0 extern struct Node * CardResource;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME CardResource
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. extern __inline BOOL 
  24. BeginCardAccess (BASE_PAR_DECL struct CardHandle *handle)
  25. {
  26.   BASE_EXT_DECL
  27.   register BOOL  _res  __asm("d0");
  28.   register struct Node *a6 __asm("a6") = BASE_NAME;
  29.   register struct CardHandle *a1 __asm("a1") = handle;
  30.   __asm __volatile ("jsr a6@(-0x18)"
  31.   : "=r" (_res)
  32.   : "r" (a6), "r" (a1)
  33.   : "a0","a1","d0","d1", "memory");
  34.   return _res;
  35. }
  36. extern __inline ULONG 
  37. CardAccessSpeed (BASE_PAR_DECL struct CardHandle *handle,unsigned long nanoseconds)
  38. {
  39.   BASE_EXT_DECL
  40.   register ULONG  _res  __asm("d0");
  41.   register struct Node *a6 __asm("a6") = BASE_NAME;
  42.   register struct CardHandle *a1 __asm("a1") = handle;
  43.   register unsigned long d0 __asm("d0") = nanoseconds;
  44.   __asm __volatile ("jsr a6@(-0x36)"
  45.   : "=r" (_res)
  46.   : "r" (a6), "r" (a1), "r" (d0)
  47.   : "a0","a1","d0","d1", "memory");
  48.   return _res;
  49. }
  50. extern __inline ULONG 
  51. CardChangeCount (BASE_PAR_DECL0)
  52. {
  53.   BASE_EXT_DECL
  54.   register ULONG  _res  __asm("d0");
  55.   register struct Node *a6 __asm("a6") = BASE_NAME;
  56.   __asm __volatile ("jsr a6@(-0x60)"
  57.   : "=r" (_res)
  58.   : "r" (a6)
  59.   : "a0","a1","d0","d1", "memory");
  60.   return _res;
  61. }
  62. extern __inline BOOL 
  63. CardForceChange (BASE_PAR_DECL0)
  64. {
  65.   BASE_EXT_DECL
  66.   register BOOL  _res  __asm("d0");
  67.   register struct Node *a6 __asm("a6") = BASE_NAME;
  68.   __asm __volatile ("jsr a6@(-0x5a)"
  69.   : "=r" (_res)
  70.   : "r" (a6)
  71.   : "a0","a1","d0","d1", "memory");
  72.   return _res;
  73. }
  74. extern __inline ULONG 
  75. CardInterface (BASE_PAR_DECL0)
  76. {
  77.   BASE_EXT_DECL
  78.   register ULONG  _res  __asm("d0");
  79.   register struct Node *a6 __asm("a6") = BASE_NAME;
  80.   __asm __volatile ("jsr a6@(-0x66)"
  81.   : "=r" (_res)
  82.   : "r" (a6)
  83.   : "a0","a1","d0","d1", "memory");
  84.   return _res;
  85. }
  86. extern __inline UBYTE 
  87. CardMiscControl (BASE_PAR_DECL struct CardHandle *handle,unsigned long control_bits)
  88. {
  89.   BASE_EXT_DECL
  90.   register UBYTE  _res  __asm("d0");
  91.   register struct Node *a6 __asm("a6") = BASE_NAME;
  92.   register struct CardHandle *a1 __asm("a1") = handle;
  93.   register unsigned long d1 __asm("d1") = control_bits;
  94.   __asm __volatile ("jsr a6@(-0x30)"
  95.   : "=r" (_res)
  96.   : "r" (a6), "r" (a1), "r" (d1)
  97.   : "a0","a1","d0","d1", "memory");
  98.   return _res;
  99. }
  100. extern __inline LONG 
  101. CardProgramVoltage (BASE_PAR_DECL struct CardHandle *handle,unsigned long voltage)
  102. {
  103.   BASE_EXT_DECL
  104.   register LONG  _res  __asm("d0");
  105.   register struct Node *a6 __asm("a6") = BASE_NAME;
  106.   register struct CardHandle *a1 __asm("a1") = handle;
  107.   register unsigned long d0 __asm("d0") = voltage;
  108.   __asm __volatile ("jsr a6@(-0x3c)"
  109.   : "=r" (_res)
  110.   : "r" (a6), "r" (a1), "r" (d0)
  111.   : "a0","a1","d0","d1", "memory");
  112.   return _res;
  113. }
  114. extern __inline BOOL 
  115. CardResetCard (BASE_PAR_DECL struct CardHandle *handle)
  116. {
  117.   BASE_EXT_DECL
  118.   register BOOL  _res  __asm("d0");
  119.   register struct Node *a6 __asm("a6") = BASE_NAME;
  120.   register struct CardHandle *a1 __asm("a1") = handle;
  121.   __asm __volatile ("jsr a6@(-0x42)"
  122.   : "=r" (_res)
  123.   : "r" (a6), "r" (a1)
  124.   : "a0","a1","d0","d1", "memory");
  125.   return _res;
  126. }
  127. extern __inline BOOL 
  128. CardResetRemove (BASE_PAR_DECL struct CardHandle *handle,unsigned long flag)
  129. {
  130.   BASE_EXT_DECL
  131.   register BOOL  _res  __asm("d0");
  132.   register struct Node *a6 __asm("a6") = BASE_NAME;
  133.   register struct CardHandle *a1 __asm("a1") = handle;
  134.   register unsigned long d0 __asm("d0") = flag;
  135.   __asm __volatile ("jsr a6@(-0x2a)"
  136.   : "=r" (_res)
  137.   : "r" (a6), "r" (a1), "r" (d0)
  138.   : "a0","a1","d0","d1", "memory");
  139.   return _res;
  140. }
  141. extern __inline BOOL 
  142. CopyTuple (BASE_PAR_DECL struct CardHandle *handle,UBYTE *buffer,unsigned long tuplecode,unsigned long size)
  143. {
  144.   BASE_EXT_DECL
  145.   register BOOL  _res  __asm("d0");
  146.   register struct Node *a6 __asm("a6") = BASE_NAME;
  147.   register struct CardHandle *a1 __asm("a1") = handle;
  148.   register UBYTE *a0 __asm("a0") = buffer;
  149.   register unsigned long d1 __asm("d1") = tuplecode;
  150.   register unsigned long d0 __asm("d0") = size;
  151.   __asm __volatile ("jsr a6@(-0x48)"
  152.   : "=r" (_res)
  153.   : "r" (a6), "r" (a1), "r" (a0), "r" (d1), "r" (d0)
  154.   : "a0","a1","d0","d1", "memory");
  155.   return _res;
  156. }
  157. extern __inline ULONG 
  158. DeviceTuple (BASE_PAR_DECL UBYTE *tuple_data,struct DeviceTData *storage)
  159. {
  160.   BASE_EXT_DECL
  161.   register ULONG  _res  __asm("d0");
  162.   register struct Node *a6 __asm("a6") = BASE_NAME;
  163.   register UBYTE *a0 __asm("a0") = tuple_data;
  164.   register struct DeviceTData *a1 __asm("a1") = storage;
  165.   __asm __volatile ("jsr a6@(-0x4e)"
  166.   : "=r" (_res)
  167.   : "r" (a6), "r" (a0), "r" (a1)
  168.   : "a0","a1","d0","d1", "memory");
  169.   return _res;
  170. }
  171. extern __inline BOOL 
  172. EndCardAccess (BASE_PAR_DECL struct CardHandle *handle)
  173. {
  174.   BASE_EXT_DECL
  175.   register BOOL  _res  __asm("d0");
  176.   register struct Node *a6 __asm("a6") = BASE_NAME;
  177.   register struct CardHandle *a1 __asm("a1") = handle;
  178.   __asm __volatile ("jsr a6@(-0x1e)"
  179.   : "=r" (_res)
  180.   : "r" (a6), "r" (a1)
  181.   : "a0","a1","d0","d1", "memory");
  182.   return _res;
  183. }
  184. extern __inline struct CardMemoryMap *
  185. GetCardMap (BASE_PAR_DECL0)
  186. {
  187.   BASE_EXT_DECL
  188.   register struct CardMemoryMap * _res  __asm("d0");
  189.   register struct Node *a6 __asm("a6") = BASE_NAME;
  190.   __asm __volatile ("jsr a6@(-0x12)"
  191.   : "=r" (_res)
  192.   : "r" (a6)
  193.   : "a0","a1","d0","d1", "memory");
  194.   return _res;
  195. }
  196. extern __inline struct Resident *
  197. IfAmigaXIP (BASE_PAR_DECL struct CardHandle *handle)
  198. {
  199.   BASE_EXT_DECL
  200.   register struct Resident * _res  __asm("d0");
  201.   register struct Node *a6 __asm("a6") = BASE_NAME;
  202.   register struct CardHandle *a2 __asm("a2") = handle;
  203.   __asm __volatile ("jsr a6@(-0x54)"
  204.   : "=r" (_res)
  205.   : "r" (a6), "r" (a2)
  206.   : "a0","a1","a2","d0","d1", "memory");
  207.   return _res;
  208. }
  209. extern __inline struct CardHandle *
  210. OwnCard (BASE_PAR_DECL struct CardHandle *handle)
  211. {
  212.   BASE_EXT_DECL
  213.   register struct CardHandle * _res  __asm("d0");
  214.   register struct Node *a6 __asm("a6") = BASE_NAME;
  215.   register struct CardHandle *a1 __asm("a1") = handle;
  216.   __asm __volatile ("jsr a6@(-0x6)"
  217.   : "=r" (_res)
  218.   : "r" (a6), "r" (a1)
  219.   : "a0","a1","d0","d1", "memory");
  220.   return _res;
  221. }
  222. extern __inline UBYTE 
  223. ReadCardStatus (BASE_PAR_DECL0)
  224. {
  225.   BASE_EXT_DECL
  226.   register UBYTE  _res  __asm("d0");
  227.   register struct Node *a6 __asm("a6") = BASE_NAME;
  228.   __asm __volatile ("jsr a6@(-0x24)"
  229.   : "=r" (_res)
  230.   : "r" (a6)
  231.   : "a0","a1","d0","d1", "memory");
  232.   return _res;
  233. }
  234. extern __inline void 
  235. ReleaseCard (BASE_PAR_DECL struct CardHandle *handle,unsigned long flags)
  236. {
  237.   BASE_EXT_DECL
  238.   register struct Node *a6 __asm("a6") = BASE_NAME;
  239.   register struct CardHandle *a1 __asm("a1") = handle;
  240.   register unsigned long d0 __asm("d0") = flags;
  241.   __asm __volatile ("jsr a6@(-0xc)"
  242.   : /* no output */
  243.   : "r" (a6), "r" (a1), "r" (d0)
  244.   : "a0","a1","d0","d1", "memory");
  245. }
  246.  
  247. #undef BASE_EXT_DECL
  248. #undef BASE_EXT_DECL0
  249. #undef BASE_PAR_DECL
  250. #undef BASE_PAR_DECL0
  251. #undef BASE_NAME
  252.  
  253. __END_DECLS
  254.  
  255. #endif /* _INLINE_CARDRES_H */
  256.